package com.ffcs.crmd.tsp.common.job.entity;
import java.util.Date;
import java.util.List;

import com.ffcs.crmd.tsp.common.enumeration.JobType;
import com.thoughtworks.xstream.annotations.XStreamAliasType;

/**
 * 
 * 功能说明:任务细节类
 *
 * @author ZHONGFUHUA
 * 
 * @see com.ffcs.crmd.tsp.api.dto.task.TspJobInstance
 */
@XStreamAliasType("TspJobDetail")
@Deprecated
public class TspJobDetail {
    
    /**
     * 子任务记录id
     */
    private long               id;
    
    /**
     * 子任务名
     */
    private String             name;
    
    /**
     * 任务名->对应quartz的任务组
     */
    private String             group;
    
    /**
     * 任务描述
     */
    private String             description;
    
    /**
     * cron表达式
     */
    private String             cronExpression;
    
    /**
     * 任务类路径
     */
    private String             jobClass;
    
    /**
     * 重复次数(-1无限次数)
     */
    private int                repeatCount;
    
    /**
     * 重复间隔,单位毫秒
     */
    private long               repeatInterval;
    
    /**
     * 任务是否可恢复(当Quartz服务被中止后，再次启动任务时会尝试恢复执行之前未完成的所有任务)
     */
    private boolean            shouldRecover      = true;
    
    /**
     * 标识job是持久的,所有相关触发器触发完毕的时候不被删除
     */
    private boolean            durability         = true;
    
    /**是否需要新增子任务操作
     * 
     */
    private boolean            isNeedAdd          = true;
    
    /**
     * 是否需要删除子任务操作
     */
    private boolean            isNeedDelete       = true;
    
    /**
     * 开始执行时间
     */
    private Date               startTime;
    
    /**
     * 结束时间
     */
    private Date               endTime;
    
    /**
     * 任务参数
     */
    private TspJobDataMap      tspJobDataMap;
    
    
    public JobType getJobType() {
        return null;
    }

    public void setJobType(JobType jobType) {
        
    }
    
    public String getJobClass() {
        return jobClass;
    }
    
    public void setJobClass(String jobClass) {
        this.jobClass = jobClass;
    }
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getGroup() {
        return group;
    }
    
    public void setGroup(String group) {
        this.group = group;
    }
    
    public String getDescription() {
        return description;
    }
    
    public void setDescription(String description) {
        this.description = description;
    }
    
    public TspJobDataMap getTspJobDataMap() {
        return tspJobDataMap;
    }
    
    public void setTspJobDataMap(TspJobDataMap tspJobDataMap) {
        this.tspJobDataMap = tspJobDataMap;
    }
    
    public boolean isShouldRecover() {
        return shouldRecover;
    }
    
    public void setShouldRecover(boolean shouldRecover) {
        this.shouldRecover = shouldRecover;
    }
    
    public boolean isDurability() {
        return durability;
    }
    
    public void setDurability(boolean durability) {
        this.durability = durability;
    }
    
    public boolean isNeedAdd() {
        return isNeedAdd;
    }

    public void setNeedAdd(boolean isNeedAdd) {
        this.isNeedAdd = isNeedAdd;
    }
    
    public boolean isNeedDelete() {
        return isNeedDelete;
    }

    public void setNeedDelete(boolean isNeedDelete) {
        this.isNeedDelete = isNeedDelete;
    }

    public Date getStartTime() {
        return startTime;
    }
    
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    
    public Date getEndTime() {
        return endTime;
    }
    
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    
    public int getRepeatCount() {
        return repeatCount;
    }
    
    public void setRepeatCount(int repeatCount) {
        this.repeatCount = repeatCount;
    }
    
    public long getRepeatInterval() {
        return repeatInterval;
    }
    
    public void setRepeatInterval(long repeatInterval) {
        this.repeatInterval = repeatInterval;
    }
    
    public String getCronExpression() {
        return cronExpression;
    }
    
    public void setCronExpression(String cronExpression) {
        this.cronExpression = cronExpression;
    }
    
    public List<ExcludeDay> getExcludeDayList() {
        return null;
    }
    
    public void setExcludeDayList(List<ExcludeDay> excludeDayList) {
        
    }
    
    public MisfireInstruction getMisfireInstruction() {
        return null;
    }
    
    public void setMisfireInstruction(MisfireInstruction misfireInstruction) {
        
    }
    
    public RepeatType getRepeatType() {
        return null;
    }
    
    public void setRepeatType(RepeatType repeatType) {
    }
    
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getJobKey() {
        return this.group + '.' + this.name;
    }
    
}
